A typical enterprise computing environment includes multiple heterogeneous and distributed database systems supporting a variety of different enterprise organizations and business purposes. For example, many enterprises, such as businesses and the like, maintain different database systems to support customer billing, sales, accounting, marketing, inventory, ordering, repairs, procurement, etc. Further, many enterprises are the result of a merger of two or more predecessor organizations, each with their own set of heterogeneous and distributed database systems.
There are many reasons why multiple heterogeneous and distributed database systems may exist within an enterprise. Where database systems were created using different technologies or different data models, there may be considerable disruption to the enterprise, not to mention considerable time and expense, in migrating multiple database systems to a common technology platform. Accordingly, in many cases it is simply impossible, or at least impractical, for an enterprise to integrate its multiple heterogeneous and distributed database systems. Further, the risk of committing the entire enterprise to a single technology platform is unacceptable to many enterprises, given the possibilities that, for a given technology platform, vendors may go out of business, properly experienced staff may be unavailable, or the technology may not prove to be robust or adequate for the needs of the enterprise. Moreover, from the standpoint of resisting and recovering from disasters, it is advantageous for an enterprise to have multiple database systems that are widely dispersed geographically and/or in terms of technology platforms, business units, etc.
However, the diversity of an enterprise's database systems places technical limitations on the ability of the enterprise to provide meaningful information and functionality to its customers while also maintaining the integrity of data. For example, a particular customer of the enterprise may desire to organize and view its account information maintained by the enterprise in a particular way that is not supported by the enterprise's diverse database systems. The problem is exacerbated for a complex customer that has many entities and accounts and wishes to organize and view its account and entity information in a variety of different ways as may serve its various business purposes. By way of an example, an enterprise customer may wish to have access to multiple concurrent, independent, and customizable versions of account information to support different business organizations, personnel, purposes, and operations.